export const TrackOpTypes = {
    GET: 'get',
    HAS: 'has',
    ITERATE: 'iterate'
}

export const TriggerOpTypes = {
    SET: 'set',
    ADD: 'add',
    DELETE: 'delete'
}

// 导出一个函数，用于判断一个变量是否为对象
export function isObject(obj) {
    // 判断变量的类型是否为object，并且不为null
    return typeof obj === 'object' && obj !== null;
}

export function hasChanged(newValue,oldValue) {
    // Object.is()可以规避一些特殊情况
    // 比如NaN和NaN是相等的，+0和-0是不相等的
    return !Object.is(newValue,oldValue)
}


export const RAW = Symbol('raw');